package main

import (
	"fmt"
)

func main() {
	//a := 0
	//fmt.Scan(&a)
	//fmt.Printf("%d\n", a)
	s := "leetcode"
	k := 2
	res := FindKUniqueChar(s, k)

	fmt.Printf("%v\n", res)
}

func FindKUniqueChar(s string, k int) int {
	// 题目： 返回字符串中第K个唯一字符
	// 思路： 使用Map记录每个字符的重复次数
	res := -1

	sLen := len(s)

	charMap := make(map[uint8]int)

	for i := 0; i < sLen; i++ {
		charMap[s[i]]++
	}

	for i := 0; i < sLen; i++ { // 第二层循环判定结果
		currChar := s[i]
		if charMap[currChar] == 1 { // 如果是单独的字符，则 k自减
			k--
			if k == 0 {
				return i
			}
		}
	}

	return res
}
